package com.minimalist.common.entity.lindi.vo.subsidyapplicationfile;

import com.minimalist.common.config.mybatis.bo.PageReq;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;
import java.io.Serializable;
import java.util.Objects;

/**
 * @author 11987
 */
@Schema(name = "林地指标交易平台_补贴申请文件查询实体")
public class LindiSubsidyApplicationFileQueryVO extends PageReq implements Serializable{
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(name = "subsidyApplicationId", description = "补贴申请ID", type = "string")
    private Long subsidyApplicationId;

    @Schema(name = "fileType", description = "文件类型", type = "string")
    private String fileType;

    @Schema(name = "fileId", description = "文件ID", type = "string")
    private Long fileId;

    // Constructors
    public LindiSubsidyApplicationFileQueryVO() {
        super();
    }

    public LindiSubsidyApplicationFileQueryVO(Long subsidyApplicationId, String fileType, Long fileId) {
        this.subsidyApplicationId = subsidyApplicationId;
        this.fileType = fileType;
        this.fileId = fileId;
    }

    // Getters and Setters
    public Long getSubsidyApplicationId() {
        return subsidyApplicationId;
    }

    public void setSubsidyApplicationId(Long subsidyApplicationId) {
        this.subsidyApplicationId = subsidyApplicationId;
    }

    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public Long getFileId() {
        return fileId;
    }

    public void setFileId(Long fileId) {
        this.fileId = fileId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        LindiSubsidyApplicationFileQueryVO that = (LindiSubsidyApplicationFileQueryVO) o;
        return Objects.equals(subsidyApplicationId, that.subsidyApplicationId) &&
               Objects.equals(fileType, that.fileType) &&
               Objects.equals(fileId, that.fileId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), subsidyApplicationId, fileType, fileId);
    }

    @Override
    public String toString() {
        return "LindiSubsidyApplicationFileQueryVO{" +
               "subsidyApplicationId=" + subsidyApplicationId +
               ", fileType='" + fileType + '\'' +
               ", fileId=" + fileId +
               '}';
    }
}
